package com.jie.other.jetpack.room

import androidx.room.*
import kotlinx.coroutines.flow.Flow

@Dao
interface UserDao {

    /**
     * 查询所有用户
     */
    @Query("SELECT * from user")
    fun getAll() : Flow<List<UserBean>?>

    /**
     * 查询第一个用户
     */
    @Query("select * from user order by userId limit 1")
    suspend fun getFirstUser() : UserBean?

    /**
     * 通过id查询用户
     */
    @Query("SELECT * from user WHERE userId = :id")
    suspend fun getUserById(id : Long) : UserBean?

    /**
     * 通过名字查询用户列表
     */
    @Query("SELECT * from user WHERE userName LIKE :search")
    fun getUserListByName(search : String) : Flow<List<UserBean>?>

    /**
     * 插入用户
     */
    @Insert
    suspend fun insert(vararg userBean: UserBean)

    /**
     * 更新用户信息
     */
    @Update
    suspend fun update(vararg userBean: UserBean)

    /**
     * 删除所有用户
     */
    @Query("Delete from user")
    suspend fun deleteAll()
}